package com.itheima.health.quartz;

import com.itheima.health.common.RedisConstant;
import com.itheima.health.util.QiniuUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

import java.util.Set;

/**
 * 定时清除 七牛 图片的 任务类
 */
@Component
public class ClearImgJob {

    @Autowired
    private QiniuUtils qiniuUtils;

    private static  final Jedis jedis = new Jedis();

    //根据redis中保存的2个set集合进行差值计算
    //得到垃圾图片的集合，然后删除
    //@Scheduled(cron = "*/20 * * * * ?") //  20秒 测试
    @Scheduled(cron = "0 0 2 1 * ?")   //  表示在每月的1日的凌晨2点调整任务
    public void clearImg() {
        Set<String> set = jedis.sdiff(RedisConstant.SETMATE_PIC_RESOURCES, RedisConstant.SETMATE_PIC_DB_RESOURCES);
        if (set != null) {
            for (String picName : set) {
                //删除 七牛的图片
                qiniuUtils.deleteFileFromQiniu(picName);
                //从redis集合中删除图片集合
                jedis.srem(RedisConstant.SETMATE_PIC_RESOURCES, picName);
                System.out.println("自动任务执行完毕,清理的图片是--" + picName);
            }
        }
    }
}
